package com.jiyun.demo;

import javax.mail.*;
import javax.mail.internet.*;
import java.util.Properties;

public class EmailVerification {
    private static final String USER = "zh75996887911@163.com"; // 发件人邮箱
    private static final String PASSWORD = "SKhP2eCdXuTjWpLr"; // 授权码

    /**
     * 发送验证信息的邮件
     *
     * @param to 收件人邮箱
     * @param text 邮件正文
     * @param title 标题
     */
    public static boolean sendMail(String to, String text, String title) {
        try {
            final Properties props = new Properties();
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.host", "smtp.163.com");

            // 发件人的账号
            props.put("mail.user", USER);
            // 发件人的密码
            props.put("mail.password", PASSWORD);

            // 构建授权信息，用于进行SMTP进行身份验证
            Authenticator authenticator = new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(USER, PASSWORD);
                }
            };

            // 使用环境属性和授权信息，创建邮件会话
            Session mailSession = Session.getInstance(props, authenticator);
            // 创建邮件消息
            MimeMessage message = new MimeMessage(mailSession);
            // 设置发件人
            message.setFrom(new InternetAddress(USER));
            // 设置收件人
            message.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
            // 设置邮件标题
            message.setSubject(title);
            // 设置邮件的内容体
            message.setContent(text, "text/html;charset=UTF-8");
            // 发送邮件
            Transport.send(message);
            return true;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }

//    public static void main(String[] args) {
//        // 生成四位随机验证码
//        String verificationCode = String.valueOf((int) (Math.random() * 9000) + 1000);
//        String emailContent = "您的验证码是: " + verificationCode;
//
//        // 发送邮件
//        boolean result = sendMail("3493618220@qq.com", emailContent, "验证码邮件");
//        if (result) {
//            System.out.println("验证码邮件发送成功");
//        } else {
//            System.out.println("验证码邮件发送失败");
//        }
//    }
}